package com.hmall.api.client;

import com.hmall.api.dto.Cart;
import com.hmall.api.dto.CartFormDTO;
import com.hmall.api.vo.CartVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.Collection;
import java.util.List;

@FeignClient("cart-service")
public interface CartClient {
    // 添加商品到购物车
    @PostMapping("/carts")
    void addItem2Cart(@Valid @RequestBody CartFormDTO cartFormDTO);

    // 更新购物车数据
    @PutMapping("/carts")
    void updateCart(@RequestBody Cart cart);

    // 删除购物车中商品
    @DeleteMapping("/carts/{id}")
    void deleteCartItem(@PathVariable("id") Long id);

    // 查询购物车列表
    @GetMapping("/carts")
    List<CartVO> queryMyCarts();

    // 批量删除购物车中商品
    @DeleteMapping("/carts")
    void deleteCartItemByIds(@RequestParam("ids") Collection<Long> ids);

}